public class Solution70 {
    /**
     * 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
     * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢？
     * 注意：给定 n 是一个正整数。
     *
     * 示例 1：
     * 输入： 2
     * 输出： 2
     * 解释： 有两种方法可以爬到楼顶。
     * 1.  1 阶 + 1 阶
     * 2.  2 阶
     */
    public int climbStairs(int n) {
        if (n == 1){
            return 1;
        }
        int pre = 1;   // 1阶
        int cur = 2;    // 2阶
        while (n - 2 > 0) {
            int temp = cur;
            cur = pre + cur;
            pre = temp;
            n--;
        }
        return cur;
    }
}
